package com.biz.primus.model.order.vo;

import com.biz.primus.model.cart.enums.ShippingLevel;
import com.biz.primus.model.order.enums.OrderItemType;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.google.common.collect.Lists;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.*;
import java.io.Serializable;
import java.util.List;

/**
 * 订单明细VO
 *
 * @author Tiger Feng
 * @date 2017年10月30日
 */
@Data
@NoArgsConstructor
@ApiModel("订单明细视图")
public class OrderItemVO implements Serializable {
    private static final long serialVersionUID = 2806510621118056334L;

    @ApiModelProperty("订单明细编码")
    private String itemCode;

    //---------------------------------
    // 商品基础
    @ApiModelProperty("商品名称")
    private String productName;
    @ApiModelProperty("商品编码")
    private String productCode;
    @ApiModelProperty("商品时效")
    private ShippingLevel shippingLevel;
    @ApiModelProperty("Logo商品品牌")
    private String logo;
    @ApiModelProperty("商品分类ID")
    private Long categoryId;
    @ApiModelProperty("商品品牌ID")
    private Long brandId;
    @ApiModelProperty("重量,克")
    private Integer weight = 0;
    @ApiModelProperty("商品数量")
    private Integer quantity = 0;
    @ApiModelProperty("商品箱规中,需要在前端展示瓶箱切换的数量")
    private Integer packageNumber;

    //---------------------------------
    // 价格
    @ApiModelProperty("最终价")
    private Integer finalPrice = 0;
    @ApiModelProperty("市场价")
    private Integer marketPrice = 0;
    @ApiModelProperty("会员价")
    private Integer memberPrice;
    @ApiModelProperty("电子钱包价")
    private Integer eWalletPrice;
    @ApiModelProperty("商品特价")
    private Integer specialOfferPrice;
    @ApiModelProperty("商品最多以特价购买的数量")
    private Integer specialOfferQuantityLimit;

    //---------------------------------
    // 促销
    @ApiModelProperty("商品项标签")
    private String itemTag;
    @ApiModelProperty("当前商品促销减免金额")
    private Integer discountPromotionMoney = 0;

    //---------------------------------
    // 优惠券
    @ApiModelProperty("当前商品优惠券减免金额")
    private Integer discountCouponMoney = 0;

    //---------------------------------
    // 订单明细信息
    @ApiModelProperty("订单商品类型(normal:普通商品、present:赠品、promotion:促销商品、seckill:秒杀商品)")
    private OrderItemType type = OrderItemType.normal;
    @ApiModelProperty("系统分配金额时的备注")
    private String allocationRemarks;
}
